import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'
import Layout from '@/layout/Index.vue'
import Page from '@/layout/Page.vue'

export const constantRoutes: Array<RouteRecordRaw> = [
  {
    path: '/',
    redirect: '/settle',
    component: Page,
    name: 'Page',
    children: [
      // {
      //   path: '/settle',
      //   redirect: '/energy',
      //   component: Layout,
      //   name: 'settleLayout',
      //   menuId: 'settle',
      //   children: [
      //     {
      //       path: '/energy',
      //       redirect: '/dashboard',
      //       name: 'Energy',
      //       meta: {
      //         title: '能耗管理', icon: 'nhgl', titleSign: 'settle', iconType: 'svg'
      //       },
      //       children: [
      //         {
      //           path: '/dashboard',
      //           component: () => import('@/views/settle/Dashboard.vue'),
      //           name: 'Dashboard',
      //           meta: {
      //             title: '能耗总览', titleSign: 'settle'
      //           },
      //         },
      //       ],
      //     },
      //     {
      //       path: '/monitor',
      //       redirect: '/house',
      //       name: 'Monitor',
      //       meta: {
      //         title: '监控管理', icon: 'jkgl', titleSign: 'settle', iconType: 'svg'
      //       },
      //       children: [
      //         {
      //           path: '/house',
      //           component: () => import('@/views/settle/House.vue'),
      //           name: 'House',
      //           meta: {
      //             title: '房间监控', titleSign: 'settle',
      //           },
      //         },
      //         {
      //           path: '/details',
      //           component: () => import('@/views/settle/Details.vue'),
      //           name: 'Details',
      //           meta: {
      //             title: '监控详情', titleSign: 'settle',
      //           },
      //         },
      //         {
      //           path: '/detailsHistory/:id/:equipId',
      //           component: () => import('@/views/settle/DetailsHistory.vue'),
      //           name: 'DetailsHistory',
      //           meta: {
      //             title: '监控详情-变量历史', titleSign: 'settle', activeMenu: '/details', hidden: true
      //           },
      //         },
      //       ],
      //     },
      //     {
      //       path: '/finance',
      //       redirect: '/balance',
      //       name: 'Finance',
      //       meta: {
      //         title: '财务管理', icon: 'cwbtn', titleSign: 'settle', iconType: 'svg'
      //       },
      //       children: [
      //         {
      //           path: '/balance',
      //           component: () => import('@/views/settle/Balance.vue'),
      //           name: 'Balance',
      //           meta: {
      //             title: '用户余额', titleSign: 'settle',
      //           },
      //         },
      //         {
      //           path: '/detailed',
      //           component: () => import('@/views/settle/Detailed.vue'),
      //           name: 'Detailed',
      //           meta: {
      //             title: '账单明细', titleSign: 'settle',
      //           },
      //         },
      //         {
      //           path: '/record',
      //           component: () => import('@/views/settle/Record.vue'),
      //           name: 'Record',
      //           meta: {
      //             title: '交易记录', titleSign: 'settle',
      //           },
      //         },
      //       ],
      //     },
      //     {
      //       path: '/project',
      //       redirect: '/manage',
      //       name: 'Project',
      //       meta: {
      //         title: '项目管理', icon: 'xmbtn', titleSign: 'settle', iconType: 'svg'
      //       },
      //       children: [
      //         {
      //           path: '/manage',
      //           component: () => import('@/views/settle/Manage.vue'),
      //           name: 'Manage',
      //           meta: {
      //             title: '项目管理', titleSign: 'settle',
      //           },
      //         },
      //         {
      //           path: '/merchant',
      //           component: () => import('@/views/settle/Merchant.vue'),
      //           name: 'Merchant',
      //           meta: {
      //             title: '商户管理', titleSign: 'settle',
      //           },
      //         },
      //         {
      //           path: '/template',
      //           component: () => import('@/views/settle/Template.vue'),
      //           name: 'Template',
      //           meta: {
      //             title: '收费模板', titleSign: 'settle',
      //           },
      //         },
      //       ],
      //     },
      //   ]
      // },
      // {
      //   path: '/collect',
      //   redirect: '/scene',
      //   component: Layout,
      //   name: 'CollectLayout',
      //   menuId: 'collect',
      //   children: [
      //     {
      //       path: '/scene',
      //       redirect: '/sceneList',
      //       name: 'Scene',
      //       meta: {
      //         title: '场景管理', icon: 'cjgl', titleSign: 'collect', iconType: 'svg'
      //       },
      //       children: [
      //         {
      //           path: '/sceneList',
      //           component: () => import('@/views/collect/SceneList.vue'),
      //           name: 'SceneList',
      //           meta: {
      //             title: '场景列表', titleSign: 'collect',
      //           },
      //         },
      //       ],
      //     },
      //     {
      //       path: '/equipment',
      //       redirect: '/equipmentTemplate',
      //       name: 'Equipment',
      //       meta: {
      //         title: '设备管理', icon: 'sbgl', titleSign: 'collect', iconType: 'svg'
      //       },
      //       children: [
      //         {
      //           path: '/equipmentList',
      //           component: () => import('@/views/collect/EquipmentList.vue'),
      //           name: 'EquipmentList',
      //           meta: {
      //             title: '设备列表', titleSign: 'collect',
      //           },
      //         },
      //         {
      //           path: '/equipmentTemplate',
      //           component: () => import('@/views/collect/EquipmentTemplate.vue'),
      //           name: 'EquipmentTemplate',
      //           meta: {
      //             title: '设备模板', titleSign: 'collect',
      //           },
      //         },
      //         {
      //           path: '/equipmentVar',
      //           component: () => import('@/views/collect/EquipmentVar.vue'),
      //           name: 'EquipmentVar',
      //           meta: {
      //             title: '变量列表', titleSign: 'collect', notMenu: true
      //           },
      //         },
      //       ],
      //     },
      //     {
      //       path: '/gateway',
      //       redirect: '/gatewayList',
      //       name: 'Gateway',
      //       meta: {
      //         title: '网关管理', icon: 'wggl', titleSign: 'collect', iconType: 'svg'
      //       },
      //       children: [
      //         {
      //           path: '/gatewayList',
      //           component: () => import('@/views/collect/GatewayList.vue'),
      //           name: 'GatewayList',
      //           meta: {
      //             title: '网关列表', titleSign: 'collect',
      //           },
      //         },
      //       ],
      //     },
      //   ]
      // },
      // {
      //   path: '/system',
      //   redirect: '/systemHome',
      //   component: Layout,
      //   name: 'SystemLayout',
      //   menuId: 'system',
      //   children: [
      //     {
      //       path: '/systemHome',
      //       redirect: '/systemSettings/menu',
      //       name: 'SystemHome',
      //       meta: {
      //         title: '系统管理', icon: 'nhgl', titleSign: 'system', iconType: 'svg'
      //       },
      //       children: [
      //         {
      //           path: '/systemSettings/menu',
      //           component: () => import('@/views/system-settings/Index.vue'),
      //           name: 'SystemMenu',
      //           meta: {
      //             title: '菜单管理', titleSign: 'system', link: '#/fmanagement/fmenu',
      //           },
      //         },
      //         {
      //           path: '/systemSettings/organization',
      //           component: () => import('@/views/system-settings/Index.vue'),
      //           name: 'SystemOrganization',
      //           meta: {
      //             title: '组织管理', titleSign: 'system', link: '#/fmanagement/forg',
      //           },
      //         },
      //         {
      //           path: '/systemSettings/role',
      //           component: () => import('@/views/system-settings/Index.vue'),
      //           name: 'SystemRole',
      //           meta: {
      //             title: '角色管理', titleSign: 'system', link: '#/fmanagement/frole',
      //           },
      //         },
      //         {
      //           path: '/systemSettings/user',
      //           component: () => import('@/views/system-settings/Index.vue'),
      //           name: 'SystemUser',
      //           meta: {
      //             title: '用户管理', titleSign: 'system', link: '#/fmanagement/fuser',
      //           },
      //         },
      //       ]
      //     }
      //   ]     
      // }  
    ],
  },
  {
    path: '/redirect',
    component: Layout,
    children: [
      {
        path: '/redirect/:path(.*)',
        component: () => import('@/views/redirect/Index.vue'),
      },
    ],
  },
  {
    path: '/login',
    component: () => import('@/views/login/Index.vue'),
    meta: {
      title: '登录',
      hidden: true,
    },
  },
  {
    path: '/404',
    component: () => import('@/views/error-page/Page404.vue'),
    meta: {
      title: '404',
      hidden: true,
    },
  },
  {
    path: '/403',
    component: () => import('@/views/error-page/Page403.vue'),
    meta: {
      title: '403',
      hidden: true,
    },
  },
  {
    path: '/settle/export',
    name: 'Export',
    component: () => import('@/views/settle/Export.vue'),
    meta: {
      title: '结算单分享',
      hidden: true,
    },
  },
]

export const asyncRoutes = [
  // 临时测试路由
  // {
  //   path: '/async',
  //   component: Layout,
  //   redirect: '/async/dashboard',
  //   roles: ['admin'],
  //   children: [
  //     {
  //       path: '/async/dashboard',
  //       component: () => import('@/views/async-page/Index.vue'),
  //       name: 'AsyncDashboard',
  //       meta: {
  //         title: '异步首页', icon: 'HomeFilled', roles: ['admin'],
  //       },
  //     },
  //   ],
  // },
  // 404 page must be placed at the end !!!
  { path: '/:catchAll(.*)', redirect: '/404' },
]

export const WHITE_LIST = ['/404', '/403', '/login', '/settle/export'];

export const router = createRouter({
  history: createWebHashHistory(),
  routes: constantRoutes,
})

export default router
